---
title: REST API documentation
summary: Entry point for the PdfAPI ASP.NET Web API 2 documentation set.
status: draft
owner: Not determined from source
last_reviewed: 2026-09-17
library: PdfAPI
reference_type: embedded
---

# REST API documentation

PdfAPI is a .NET Framework 4.6.2 ASP.NET Web API 2 service that converts, merges, and extracts pages from PDF documents, validates and inspects PDF content, and tracks the lifecycle of each processing request in an Oracle imaging schema. Callers include the generated `PdfAPI.Client` NuGet package and any consumer that composes the endpoint catalog directly against the deployed host.

| Field | Value |
| --- | --- |
| **Service** | `PdfAPI` |
| **Framework** | ASP.NET Web API 2 (`System.Web.Http`, .NET Framework 4.6.2) |
| **Host** | IIS — `Global.asax` + `WebApiApplication` : `System.Web.HttpApplication` |
| **Route configuration** | `PdfAPI\App_Start\WebApiConfig.cs` → `Register(HttpConfiguration)` |
| **Routing mode** | Both — `config.MapHttpAttributeRoutes()` and a convention route `api/{controller}/{id}` (`DefaultApi`) are registered, but every live action carries `[Route]`, so only attribute routing resolves any action* |
| **Base controller** | `System.Web.Http.ApiController` directly — no repository-local base controller exists |
| **Versioning** | `[RoutePrefix("v1")]` / `[RoutePrefix("v1/info")]` / `[RoutePrefix("v1/legacy")]` on 11 of 13 endpoints; `ApiInfoController` carries no `[RoutePrefix]`, so `GET buildVersion` has no version segment |
| **Media types** | JSON only — `config.Formatters.XmlFormatter` removed |
| **Composition root** | `PdfAPI\App_Start\IocConfig.cs` (file name has a lowercase `c`; the class inside is `IoCConfig`) |

## Documentation sections

| Section | Description |
| --- | --- |
| [Overview](overview.md) | Purpose, consumers, business context, and capability summary |
| [Architecture](architecture.md) | Hosting, request pipeline, layering, and the DI composition root |
| [Endpoints](endpoints.md) | Endpoint catalog with per-controller detail pages |
| [Authentication and authorization](authentication-authorization.md) | Identity, authorization enforcement, and role requirements |
| [Dependencies](dependencies.md) | Libraries, packages, APIs, and database connections |
| [Configuration](configuration.md) | Environment API settings, runtime-resolved connections, Web.config surface |
| [Operations and processes](operations-processes.md) | End-to-end processing workflows behind the endpoints |
| [Business rules](business-rules.md) | Rules enforced during request processing |
| [Data model](data-model.md) | Persistence model, entity mappings, and stored procedure usage |
| [Operational runbook](operational-runbook.md) | Deployment, health checks, logs, status codes, error recovery |
| [Tech debt](tech-debt.md) | CRITICAL and HIGH severity findings |

## Controllers

| Controller | Route prefix | Endpoints | Documentation |
| --- | --- | --- | --- |
| `ConvertController` | `v1` | 2 | [Docs](endpoints/convert-controller.md) |
| `ExtractController` | `v1` | 1 | [Docs](endpoints/extract-controller.md) |
| `MergeController` | `v1` | 1 | [Docs](endpoints/merge-controller.md) |
| `LegacyController` | `v1/legacy` | 1 | [Docs](endpoints/legacy-controller.md) |
| `InfoController` | `v1/info` | 7 | [Docs](endpoints/info-controller.md) |
| `ApiInfoController` | — | 1 | [Docs](endpoints/api-info-controller.md) |

## Related documentation
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Endpoints](endpoints.md)
- [Authentication and authorization](authentication-authorization.md)
- [Dependencies](dependencies.md)
- [Configuration](configuration.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Data model](data-model.md)
- [Operational runbook](operational-runbook.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with `**` could not be confirmed; treat as unknown until verified.

## Sources
- PdfAPI\PdfAPI.csproj
- PdfAPI\Global.asax.cs
- PdfAPI\App_Start\WebApiConfig.cs
- PdfAPI\App_Start\IocConfig.cs
